Time optimized replacement of a software application

ABSTRACT

The invention relates to a method for replacing old software ( 10 ) that is in use with new software ( 12 ), which permits the maximum availability of the software. Said method is subdivided into a preparation phase (V) and an active phase (A). The preparation phase (V) take place during the operation of the old software ( 10 ). The active phase (A) is merely characterized by the execution of a MOVE command.

[0001] The invention relates to a method for performing a status changeon at least one computer from an actual condition to a target condition,the status change relating in particular to replacement or first-timecommissioning of software or of a software package.

[0002] The use of software is subject to continuous further development,with the result that applications that already exist and are inoperation must be adapted to suit new requirements (e.g. increasedhardware performance) or upgraded. Consequently, the existingapplication in use has to be replaced by a later version, anupgrade/update or with a corrected version (patch).

[0003] There are basically several ways of installing software on acomputer. Formerly a set of diskettes was used, the first diskettegenerally containing a setup program and a compressed file. Thedecompressed file(s) is/are then copied to a destination directory onthe target system. The setup program guides the user through theinstallation routine and can in some cases additionally modify certainconfiguration files of the target system.

[0004] Today a CD can be used which enables a similar procedure to befollowed and provides more storage space.

[0005] Additionally known is the use of shells which automaticallyextract an associated file tree and store it in a selectable directory.

[0006] If software is not to be installed for the first time, butalready installed software is to be reinstalled, there are basically twooptions:

[0007] 1. After deinstalling the old package, the new package iscompletely reinstalled. The advantage of this method is that all thenewly installed files also have de facto the same version, and errorsdue to erroneously unchanged files can be eliminated. The majordisadvantage of this method is that it is very time-consuming.

[0008] 2. No deinstallation takes place, but only the parts that aredifferent in the new version are reinstalled. Although this is faster,the swapping of data between the old and new files often results inerrors.

[0009] All the known installation techniques are certainly verytime-intensive and require a lengthy period during which neither the oldnor the new software can be run.

[0010] For particularly time-critical applications, such as in thetelecommunications and database fields, time-optimized replacement ofapplication software is indispensable in order not to disrupt operationof the entire system.

[0011] With regard to the abovementioned areas of use which requirevirtually continuous coverage of the application, it is unacceptable forthe application to be inoperable for a lengthy period due to thenecessary software replacement.

[0012] A highly time-optimized status change is not only critical forsoftware replacement, however, but also applies if certain systemvariables are to be changed or if certain peripherals and/or hardwarecomponents are to be replaced by others, with the result that, forexample, the use of other drivers becomes necessary. Basically,time-optimized replacement is necessary if other processes are using thecurrent software to be replaced.

[0013] Changing the status in terms of software replacement has hithertobeen implemented by taking the existing software out of operation,replacing it by installing new software and then re-starting theapplication and/or the system.

[0014] This method has been found to be very disadvantageous for thetime-optimization reasons described above; the method for replacingsoftware has until now been adopted from the general use of applicationsoftware in other areas which have a much greater time tolerance. If,for example, a drawing program is to be replaced by a new version of thesame, a brief unavailability of the application would be acceptable.However, this is not the case in the telecommunications field,particularly for carrier-grade systems, as these require maximumavailability.

[0015] The object of the present invention is therefore to create amethod allowing a time-optimized status change, in particular atime-optimized replacement of software applications, and which can beautomated. The object is in particular to create a method for replacingapplications on individual computers in a multi-computer network.

[0016] This object is achieved by the method described above which issubdivided into a preparation phase and a subsequent active phase, thepreparation phase being carried out in the actual condition andcomprising the following steps:

[0017] registering control information relating to the target condition

[0018] automatically generating at least one script from the controlinformation,

[0019] saving the data for the target condition to an intermediate(cache) directory,

[0020] and wherein the status change is performed during the activephase by terminating operation in the actual condition and applying thescript to make the data for the target condition available in adestination directory without all the data for the target conditionhaving to be physically moved.

[0021] The object is achieved according to the main claim in that, inparticular, no physical movement of the data takes place in the activephase, specifically no movement of the entire software package with itsassociated directory tree.

[0022] In contrast to the current method of status change and softwarereplacement adopted from other areas of installation, it has been foundto be very advantageous for the availability of the relevant softwarethat the time required for the status change can be significantlyreduced. This is achieved by subdividing the area of softwareinstallation into two phases: a preparation phase executed while theactual condition still obtains, i.e. during operation of the oldsoftware or during operation without the new software being installed.The second phase, a so-called active phase, is used for direct executionof the status change without data transfer being necessary. By bringingforward the preparation phase, the time-critical active phase can belimited to the execution of only one or more move instructions, aftertermination of the actual condition and to initiate the targetcondition. Therefore, by bringing forward significant parts of theinstallation process, such as loading operations and processes forgenerating the appropriate environment, the time to the start of thetarget condition and also the shutdown time can be minimized. It is thelatter that is of particular importance, as the period of inactivity ofalready installed software that is to be replaced by an upgrade, anupdate or a patch should be as brief as possible.

[0023] This results in significantly improved downtimes of the softwareemployed, particularly in the area of applications for network operatorsand service providers.

[0024] A further advantage also lies in the automatability of themethod, particularly in that time-optimized scripts can be generatedautomatically and in the generation of the associated environment forthe software in the target condition or for the current version of thesoftware. This is made possible by subjecting the actual condition toanalysis in which certain system parameters (e.g. environment variables)are automatically registered. Dynamically adapted, automaticinstallation can then take place, as the scripts for performing theinstallation take the registered system parameters into account. Thisdynamically adapted installation method is hitherto unknown and isadvantageous not merely for time reasons, as the hitherto necessaryinteractive entry of information does not allow a time-optimized method.

[0025] This also results in less proneness to errors than in the presentsystems, as the automatically produced path names are generatedfaultlessly and coincide with the corresponding directories. Errors havehitherto arisen, for example, due to the fact that when upgrading anapplication on a Windows system, parts or areas of the operating system,e.g. the DLL files, are modified by installation of the applicationsoftware. This can give rise to a situation in which DLL files exist inthe old version and in the new version. However, no tracing for theoverwriting of DLL files takes place. With a sequence of installationsand deinstallations, incongruities can then arise.

[0026] In the preferred embodiments of the invention, the method forperforming a status change is applied to computers used in the area ofcarrier-grade systems in the telecommunications field.

[0027] A particularly advantageous embodiment of the invention relatesto cluster computers. To increase computing power and advantageouslyinfluence other system parameters, clusters are often used, i.e. a groupof networked computers that are assigned the same task. So-calledstandby clusters or availability clusters are used in order to beable—as the name suggests—to optimize the availability of a system. Forexample, the cluster could consist of two machines, one of whichperforms a specific task assigned to it. The other machine is in standbymode. Only if the first machine indicates that problems are occurring(e.g. a hardware defect or a software fault) will the second machinetake over the jobs of the first. (No load sharing occurs). This meansthat there is an inactive or standby condition of a machine or, in otherconcepts, of a network of machines.

[0028] This standby condition, the so-called cluster redundancy, is usedin such a way with the present invention that the status change onlyaffects the inactive side of the cluster, enabling availability to beincreased still further.

[0029] In a further advantageous embodiment of the invention, “UNIX” isused as the operating system. This move instruction is then executed bythe use of one or a sequence of MOVE commands. The MOVE command istherefore time-optimized, as no data is moved, but only the top entry inthe corresponding directory tree—the so-called inode entry—is modifiedor redirected. As all the necessary arrangements have been made in thepreparation phase, only the MOVE command still has to be executed in theactive phase using the method according to the invention.

[0030] It has been found to be extremely advantageous that theenvironment for the relevant application can be automatically generatedusing the method according to the invention. For this purpose thesoftware for the target condition is stored under automaticallygenerated path names. The advantage of this is that the correspondingand correctly configured environment is activated automatically when thetarget condition is put into operation.

[0031] The inventiveness is particularly evident in that an installationscript is generated automatically and above all dynamically; the newpackage is augmented with specific target system information, so thatoptimized and in particular time-optimized installation on the relevanttarget system is possible without further system parameters having to berequested and/or processed during the installation. The timeoptimization of the status change, particularly of software replacement,is therefore based according to the invention on the concept that thesoftware to be installed does not need to be moved during the activephase.

[0032] Further advantageous embodiments of the invention will emergefrom the subordinate or associated claims.

[0033] Further advantages of the invention and particular embodimentswith their features are illustrated in the following description of theFigures, in which:

[0034]FIG. 1a is a schematic representation of a status change accordingto the prior art,

[0035]FIG. 1b is a schematic representation of a status change accordingto the invention

[0036]FIG. 2 shows a flowchart for performing the status changeaccording to the invention.

[0037] The method is geared to replacing old software 10 that is in usewith new software 12 that is to be installed for the first time orre-installed.

[0038] The new software can be an update, an upgrade or a patch of theold software 10. However, it is also possible that the new software 12to be installed has not yet been installed and a first-time installationis to be achieved by the status change.

[0039] The method according to the invention is characterized by twodirectly consecutive phases: in a preparation phase V, all the processesare executed which can be brought forward in time and can take placewhile the old software 10 is still in operation. In an active phase A,the replacement process is completed by relocating certain files anddirectories only. The active phase A ends with startup of the newsoftware 12.

[0040]FIGS. 1a and 1 b refer to the change from actual to targetcondition. FIG. 1a illustrates a software change according to a methodfrom the prior art and FIG. 1b relates to the method according to theinvention which is subdivided into the preparation phase V and theactive phase A.

[0041] By replacing or changing a program, a status change of thecomputer or system (of computers) is achieved. An actual condition 16 ischaracterized by operation of the old software 10. This actual condition16 is to be transformed into a target condition 18 characterized byoperation of the new software 12. By using the method according to theinvention, the time for the status change, i.e. the time betweenshutdown of operation of the old software 10 and startup of the newsoftware 12 is minimized.

[0042] In a preferred embodiment, the software is to be replaced on acomputer of a SUN cluster 2.2.

[0043] To increase the availability of the software application, thecluster redundancy is utilized by performing the status change on theinactive side of the cluster only, without interrupting softwareoperation on the active side.

[0044] The rough time sequence of an advantageous embodiment of themethod according to the invention in respect of a UNIX computer will nowbe explained with reference to FIG. 2.

[0045] In this connection it should be noted that other embodiments ofthe invention provide a modified sequence of the individual proceduralsteps shown in FIG. 2, the steps illustrated in the first three boxestaking place in the software production phase and the remaining (five)steps being executed on the target machine.

[0046] To initiate the method, all the prerequisites for bringing aboutthe target condition, particularly of the new software 12, areregistered as shown in FIG. 2. During development or production of thesoftware package, a so-called control file 20 is created in whichcontrol information 22 is stored. The control information 22 is packedtogether with the new software 12 into a package 24 according to theknown method from the prior art.

[0047] The control information relates, for example, to the requiredsystem reaction during or after performance of the status change. It maybe required, for example, that no system reaction shall take place afterinstallation of the new software 12, or shutdown of the application orshutdown of the application including the basic software may berequired, namely of the intermediate layer between the application andthe operating system. Alternatively it can be specified that a completereboot shall take place.

[0048] The control information 22 of the package 24 is still used in thepreparation phase V in order to generate one or more scripts 26. Thesescripts 26 cause the replacement action to be executed in atime-optimized manner.

[0049] In addition, the new software 12 is stored under automaticallygenerated directory names which are used as a cache directory. A dynamicassignment between the directory names and environment variables of thesoftware package then takes place.

[0050] The UNIX operating system provides the administrator with clearlydefined routines, such as the “package add” (pkgadd) and “packageremove” (pkgrm) routines which add a package or remove software from asystem as their names suggest. The format for UNIX software packages isdefined among other things by an “Application Binary Interface” (ABI).

[0051] To summarize, in the preparation phase V all the time-intensivecommands are executed in the background of current system operation in acache directory (in FIG. 2 the term “cache directory” in the fifth stephas been abbreviated to “cache dir.”). Thus when the new software 12 hasbeen unpacked, it is installed in the cache directory—using, forexample, the “pkgadd” command. Scripts 26 are then generated forsubsequently performing the replacement of the old software 10 with thenew software 12— from the pkgadd control file “pkgmap”, for example.Then the environment for the new software 12 is automatically generated.

[0052] Only then is it necessary to shut down the old software 10,particularly the network operator software. This point in time alsodefines the transition from the preparation phase V to the active phaseA. After shutdown of the old software 10, the scripts 26 are now in turnexecuted, depending on the embodiment selected, by executing a MOVEcommand or a sequence of MOVE commands.

[0053] Because of the preliminary steps in the preparation phase V, theexecution of a MOVE command or of a sequence of MOVE commands is nownecessary at this point in order to have the information stored in thecache directory available in the destination directory. After executionof this operation, the new software 12 is put into operation, the targetcondition 18 is attained and the active phase A is complete.

[0054] By executing the preparatory and time-intensive steps in thepreparation phase V, the active phase A can be reduced to a minimal timeperiod, which considerably increases system availability. Execution ofthe time-intensive commands takes place in the preparation phase V, i.e.in parallel with the operation (of the old software 10) in the actualcondition 16. This period of time during the preparation phase V cantherefore be totally disregarded in terms of the non-availability of thesystem. As the invention is based not least on the fact that during theactual condition 16 as many installation process as possible are broughtforward, the preparation phase V can occupy a longer period of time thanwould be the case for a method according to the prior art. This does notimpair availability, however, as the old software 10 still continues torun during the actual condition 16. The system is only unavailableduring the minimally short active phase A.

[0055] The time benefit according to the invention therefore resultsfrom using a MOVE command or a sequence of MOVE commands, which onlychange the root of the file tree, the INODE, and do not move data. Thisis the difference between re-installation according to the invention andthat known hitherto in which a complete copy of the data is generated.

[0056] An alternative embodiment of the invention provides for the useof the method for non-UNIX systems and/or non-cluster systems.

[0057] The method according to the invention additionally comprisesfurther options for performing the replacement process. For example, itcan be specified whether a system reaction is required afterincorporation of the new software 12 (for example a reboot, etc.). Inaddition, the necessary processes can be defined that are necessaryprior to unpacking of the new software 12 and/or after incorporation ofthe new software 12 in the destination directory but before restartingthe new software 12. This includes processes such as necessary dataconversions, link generation or the like. In addition, the environmentwhich is to be automatically activated in the target condition 18 can beset.

[0058] An important advantage in practice is that the environment of thenew software 12 to be installed is generated automatically. The userdoes not therefore need to concern himself with selecting the correctinstallation package and the method can operate on a fully automatedbasis.

[0059] In order not to lose the operable old software 10, i.e. theactual condition 16 prior to the replacement action, in the event of amis-controlled replacement action, there is additionally provided afall-back option involving a back-replacement of the software. Thismeans that the old actual condition corresponds to the new targetcondition and vice versa. For this purpose the old software 10 to bereplaced is saved to a backout directory. From this directory it is thenmoved again to the destination directory. This additional backup measureensures that no data can be lost.

[0060] However, the method is frequently used to cause a patch for thesoftware application to be installed automatically. The correctionprogram, the so-called patch, can therefore be automatically installedin the relevant version and with the appropriate environment.

1. Method for performing a status change on at least one computer froman actual condition (16) to a target condition (18), the status changerelating in particular to the replacement or initial operation ofsoftware, and which is subdivided into a preparation phase (V) and asubsequent active phase (A), the preparation phase (V) being executed inthe actual condition (16) and having the following steps: registering ofcontrol information (22) relating to the target condition (18),automatic generation of at least one script (26) from the controlinformation (22), saving of the data for the target condition (18) to acache directory, and said status change being carried out during theactive phase (A) by terminating operation in the actual condition (16)and applying the script (26) by means of which the data for the targetcondition (18) is relocated from the cache directory to a destinationdirectory.
 2. Method according to claim 1, characterized in thatexecution of the script(s) (26) is time-optimized.
 3. Method accordingto at least one of the preceding claims, characterized in that anappropriate environment for the target condition (18) is generatedautomatically.
 4. Method according to at least one of the precedingclaims, characterized in that the data for the target condition (18) isstored under automatically generated path names.
 5. Method according toat least one of the preceding claims, characterized in that the computeris a computer within a cluster.
 6. Method according to claim 5,characterized in that at least the active phase (A) takes place on theinactive sides of the cluster computers.
 7. Method according to at leastone of the preceding claims, characterized in that the computer is aUNIX computer.
 8. Method according to claim 7, characterized in that oncompletion of the active phase (A) the data for the target condition(18) is no longer in temporary storage, but is accessible in thedestination directory by renaming a data tree root, in particular bymeans of a MOVE command.
 9. Method according to at least one of thepreceding claims, characterized in that in addition the methodoptionally comprises the following step: automatic restoration of theactual condition (16) after performing the status change, particularlyby generating a backout package during the installation of a package(24).
 10. Method according to at least one of the preceding claims,characterized in that the data for the target condition (18) relates toa software package in which control information (24) has beenincorporated.
 11. Method according to claim 10, characterized in thatthe package (24) is unpacked in the cache directory.
 12. Methodaccording to at least one of the preceding claims, characterized in thatthe status change involves installing new software (12) for the firsttime.
 13. Method according to at least one of the preceding claims,characterized in that the status change involves re-installing oldsoftware (10), in particular an upgrade and/or an update.
 14. Methodaccording to at least one of the preceding claims, characterized in thatthe status change involves installing a patch for old software (10). 15.Method according to at least one of the preceding claims, characterizedin that the status change is performed automatically.
 16. Programincorporating software code portions with which a method according toone of claims 1 to 15 is executed by a processor.
 17. Arrangement forcarrying out a method according to one of claims 1 to 15.